为什么静态化
现在的网站绝大多数是数据库驱动的,页面由程序实时生成,而不是真的在服务器上有一个静态 HTML 文件存在。当用户访问一个网址时,程序根据 URL 中的参数调用数据库数据,实时生成页面内容。因此动态页面相对应的 URL 原始状态也是动态的,包含问号、等号及参数,例如下面这种典型论坛的 URL:
http://www.domain.com/viewthread.php?tid=70376&extra=page=1
搜索引擎蜘蛛在发展初期一般不太愿意爬行和收录动态 URL,主要原因是可能会陷入无限点击循环或收录大量重复内容,造成资源极大浪费。最典型的无限循环就是某些网站上出现的万年历,很多博客中的“按时间存档”,一些宾馆、航班查询网站也经常出现万年历形式,如图 4-4 所示。
搜索引擎蜘蛛碰到万年历,如果一直跟踪上面的链接,可以不停地点击下一月、下
一年,陷入无限循环,每一个日期对应的页面内容也没什么区别。真实用户一眼就能看出这是个日历,但搜索引擎蜘蛛面对的只是一串代码,不一定能判断出其实这是个万年历。电子商务网站各种条件过滤、筛选页面也可能组合出数量庞大的页面,弄不好会近乎于无限循环。
有时就算不存在无限循环,动态 URL 也可能造成大量复制页面。比如 URL:

图 4-4 万年历使蜘蛛可以
无限点击下去
http://www.domain.com/product.php?color=red&cat=shoes&id=12345和 URL: http://www.domain.com/product.php?cat=shoes&color=red&id=12345及 URL: http://www.domain.com/product.php?color=red&id=12345&cat=shoes
很可能是完全一样的内容,都是序列号为 12345 的红色鞋子。URL 中参数顺序不同就是不同的网址,但调用参数一样,因此页面内容是一样的。如果 CMS 系统设计不周全,这些 URL 可能都出现在网站上。
更麻烦的是,有时某些参数可以是任意值,服务器都能正常返回页面,虽然内容全是一样或非常相似的。例如,上面 URL 中的参数 12345 改为 6789 或其他数字,服务器很可能也会返回 200 状态码。所以以前的搜索引擎对动态 URL 敬而远之,要想网站页面被充分收录,站长需要把动态 URL 转化为静态 URL。
本文档为站内渲染。原始文件本地路径:saas/source/seo-llm/SEO实战密码-markdown-第04章-网站结构优化-URL-静态化-为什么静态化-56f59a.md(仅本地保留,不入库不部署)