Here are some extremely unofficial criteria that I use. For things like this I derrive measurements from a rough view of industry pricing referenced against time, effort, difficulty (as opposed to complexity, which is sometimes generated) and a few other things.
On all sites you need to consider the amount of traffic when thinking of coding difficulty. More traffic means handling more traffic. Some of the site will not be in the pages themselves so much as the backbone.
- Small number (3-7) of static "main pages"
- Any other pages are all nominal in coding and design
- Small websites can still be dynamic, usually preferred, but not required
- Possibly the most important: If I can make this, by myself, in three days or less, it is small
- Need greatly different code and design on various sections (checkout, media library, etc..)
- Large number of pages, usually less than 100, unless dynamic creation is common (like blogs)
- Need a content management system
- Use of a small database (not to say small sites can't have one)
- Expected development time of 1 to 3 weeks, very likely to need a designer and a programmer
- Basic security
- May use more techs (languages, libraries, etc..) than usual
- Content management must greatly extend site functionality and heavily interacts with database
- Database needs many tables, a full schema, very probably multiple databases, etc..
- Development ETA: 1-6 months (6 months?! I severely hope not) Will need to work on a team of designers, developers and others
- Even with amazing content management, the site will need at least one developer to keep it going (not always true)
- Extreme security
- Interfacing with corporate intranet / server / etc.. (sometimes happens for any site)
- Have to use many more techs than usual
- Unlimited pages, mostly dynamicly generated based on the organization's changing data, client/user interaction, content management, etc..
- Web site needs to generate reports to understand activity
- Too many other factors for this size
Now this is a very, very rough sketch. Sometimes things are needed, like office intergration, on very small web sites while being an exception. For instance the site may be only integrating into one small aspect of a small company and nothing more.
These are just on-the-fly rules of thumb I keep in mind when going over projects with new clients. There are quite a few other factors that really go through my mind and every project is very different.
As more tech is actually required, as opposed to desired, and as project difficulty (and pay) increases, there is a tendency for the sites to be larger.
If you are looking only at number of pages generated / coded, I would say an even rougher definition would be
- Less than 10 Pages == Small
- 10-40 Pages == Medium
- 40-250 Pages == Large
- 250 - 10,000 Pages == Enterprise