SEO之网站结构优化(八)

news2024/9/24 19:18:18

初创企业搭建网站的朋友看1号文章;想学习云计算,怎么入门看2号文章谢谢支持:
1、我给不会敲代码又想搭建网站的人建议
2、新手上云


8、URL静态化

URL静态化一直以来都是最基本的SEO要求之一,但近一两年 SEO 行业对是否一定要做静态化有了一些观念上的改变。


1、为什么静态化
现在的网站绝大多数是数据库驱动,页面由程序实时生成,而不是真的在服务器上有一个静态HTML文件存在。当用户访问一个网址时,程序根据URL中的参数调用数据库数据,实时生成页面内容。因此动态页面相对应的URL原始状态也是动态的,包含问号、等号及参数,如下面这种典型论坛的URL:
http://www.domain.com/viewthread.php?tid=70376&extra=page=l
搜捜索引擎在发展初期(其实也就是10年前到三四年前而已)一般不太愿意爬行和收录动态URL,主要原因是可能陷入无限循环或收录大量重复内容,造成资源极大浪费。最典型的无限循环就是某些网站上出现的万年历,很多博客都按时间存档,一些宾馆、航班查询网站都经常出现万年历形式,如图所示。
在这里插入图片描述

搜索引擎蜘蛛碰到万年历,如果一直跟踪上面的链接,可以不停地点击下一月、下一年,无穷无尽陷入无限循环,每一个日期对应的页面内容也没什么区别。真实用户一眼就能看出这是个日历,但搜索引擎蜘蛛面对的只是一串代码,不一定能判断出其实这是个万年历。
有时就算不存在无限循环,动态URL也可能造成大量复制页面。比如URL:
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。


2、怎样静态化 URL
最常见的方法是使用服务器的URL重写模块,在LAMP (Linux+Apache+MySQL+PHP)服务器上一般使用 mod_rewrite 模块, Windows服务器也有功能相似的ISAPI Rewrite等模块。以LAMP服务器为例,要想把 URL:
http://www.domain.com/products.php?id=123
静态化为:
http://www.domain.com/products/123
需要启用服务器mod_rewrite模块,然后在.htaccess 文件中写入如下代码:

RewritcRule /products/([0-9]+) /products.php?id=$1

URL 重写代码基于正则表达式,每个网站的动态URL结构不同,服务器设置也可能不同,代码也就不同。正则表达式的写法比较复杂,千变万化,通常需要程序员编写。在写URL 静态化代码时必须非常小心,错了一个字符,多了一个斜杠等微小的不同,都可能造成灾难性的后果。我本人就遇到过这样的案例。
严格来说,这里所说的URL静态化应该称为“伪静态化”,也就是说服务器上述是不存在相应的HTML文件,用户访问时还是动态生成页面,只不过通过URL 重写技术使网址看起来像是静态的。也有的CMS系统可以实现真正静态化,站长增添产品或文章后,系统会自动生成真实存在的静态的HTML文件。对搜索引擎来说,真正的静态与伪静态没有区别。


3、URL不需要静态化吗
近两三年搜索引擎对动态URL的抓取有了很大进步。一般来说 URL 中有两三个参数,对收录不会造成多大影响。权重高的域名,再多几个问号也不是问题。不过一般来说还是建议将URL静态化,既能提高用户体验,又能降低收录难度。
2008年9月份,Google站长博客发表了一篇讨论动态网址和静态网址的帖子,颠覆了这个SEO界的传统观念。在这篇帖子里,Google明确建议不要将动态URL静态化。

Google 的帖子有几个要点。
(1) Google 完全有能力抓取动态网址,多少个问号都不是问题。

(2)动态网址更有助于Google 蜘蛛读懂URL含义并进行鉴别,因为网址中的参数有提示性。Google举了这个例子:
www.example.com/article/bin/answer.foo?language=en&answer=3&sid=98971298178906&query=URL
URL里的参数本身有助于 Google理解 URL及网页内容,比如 language后面跟的参数是提示语言,answer 后面跟的是文章编号, sid后面的肯定是Session ID。其他常用的参数包括:color 后面跟的一般是颜色,size后面跟的参数是尺寸等。有了这些参数名称的帮助,Google更容易理解网页。
将网址静态化后,这些参数的意义通常就变得不明显了,比如这个URL:
www.example.com/shoes/red/7/12/men/index.html
就可能使Google不知道哪个是产品序列号,哪个是尺寸。

(3) URL静态化很容易弄错,那就更得不偿失了。比如,通常动态网址的参数调换顺序所得到的页面是相同的,这两个网址很可能就是同一个页面:

  • www.example.com/article/bin/answer.foo?language=en&answer=3
  • www.example.com/article/bin/answer.foo?answer=3&language=en

保留动态网址,Google 比较容易明白这两个URL是一个页面,因而自动合并权重。经过静态化后,这样两个网址 Google 就不容易判断是不是同一个页面,从而可能引起复制内容:

  • www.example.com/shoes/men/7/red/index.html
  • www.example.com/shoes/red/7/men/index.html

再一个容易搞错的是Session ID,也可能被静态化进URL:
www.cxample.com/article/bin/answer.foo/en/3/98971298178906/URL
这样网站将产生大量URL不同、但其实内容相同的页面。
所以,Google建议不要静态化URL,
但是我目前还是建议尽量要静态化RL。原因如下。
(1) Google给的建议是从Google自己出发,没有考虑其他搜索引擎。Google 抓取任何动态网址没问题,并不意味着百度、雅虎、必应、搜狗、搜搜等都没问题。
(2) Google所说的静态化的弊端,基本上是基于静态化做得不正确的假设。问题是要做静态化就得做正确,假设会做错是没有什么道理的。有几个人会在静态化网址时把Session ID 也放进去呢?
(3)用户体验。带有参数的URL可能有助于Google 读懂内容,但是显然非常不利于用户
在一瞥之下理解页面大致内容。看看这两个网址哪个更清晰,更容易读懂,更有可能被点击呢:

  • www.example.com/product/bin/answer.foo?language=en&productID=3&sid=98971298178906&cat=6198&&query=URL
  • www.example.com/product/men/shoes/index.html

显然是第二个。
除了点击率,长的动态网址也不利于记忆,不利于在邮件、社会化网站等地方抄送给别人。

(未完待续。。。点击我的主页可翻看以前的文章)
图片来源网络

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1971498.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

科普文:万字细说微服务及其框架Netflix,Spring Cloud,Spring Cloud Alibaba梳理

概叙 微服务(Microservices)是一种软件架构风格,它将单一的应用程序拆分为多个小的服务,每个服务都是独立运行和部署的。每个微服务通常只专注于一个业务功能,具有自己的数据存储,并且通过轻量级的通信机制…

多无人机协同机间通信技术详解

随着无人机技术的飞速发展,多无人机系统(Multi-Unmanned Aerial Vehicle, Multi-UAV)在军事侦察、环境监测、目标跟踪、物流配送等多个领域展现出巨大潜力。多无人机协同作业的核心在于高效的机间通信技术,它能够实现无人机之间的…

npm install 巨慢,导致Jenkins编译报错问题解决——基础积累

今天在弄后台系统的服务器编译时,一直报错。报错信息为:系统找不到指定的路径。 最后进入到服务器中,找到E:/Jenkins/WorkSpace/JiePeiAiMomsAdmin_FenZhi这个路径,然后通过cmd进入到命令提示符中。 然后通过npm i进行安装&#…

简单的docker学习 第4章docker容器

第4章 Docker容器 4.1 容器基础 4.1.1 容器启动流程 通过 docker run 命令可以启动运行一个容器。该命令在执行时首先会在本地查找指定的镜像,如果找到了,则直接启动,否则会到镜像中心查找。如果镜像中心存在该镜像,则会下载到…

外贸建站:WordPress搭建外贸独立站零基础小白保姆级教程

凡做外贸的,我相信在过去几年中通过亚马逊、速卖通等电商平台上都取得了一定的成功。然而,近年来电商平台上的竞争激烈,利润空间有限,流量获取困难和昂贵,这对许多外贸从业者造成了困扰。因此,为了减少对平…

易境通散货集拼系统是如何让散拼效率提高80%的?

散货集拼为什么必须要有靠谱的系统才行?因为散拼很容易出现各种问题,而且会连带着影响不同的环节。货物整箱利用空间不充足,会导致集装箱数量增加,运费成本激增,返工整理会耽误发货,延长送货时间&#xff0…

【JavaEE】线程状态

目录 前言 一.线程状态图 二.线程状态 1.初始状态(NEW) 2.运行状态(RUNNING) 3.等待状态(WAITING) 4.超时等待(TIMED_WAITING) 5.阻塞状态(BLOCKED) 6.终止状态(TERMINATED) 三.线程状态间的转换 四.总结 前言 线程状态及其状态转换…

mindspore框架下Pix2Pix模型实现真实图到线稿图的转换|(三)Pix2Pix模型训练与模型推理

mindspore框架下Pix2Pix模型实现真实图到线稿图的转换 mindspore框架下Pix2Pix模型实现真实图到线稿图的转换|(一)dataset_pix2pix数据集准备mindspore框架下Pix2Pix模型实现真实图到线稿图的转换|(二)Pix2Pix模型构建mindspore框…

Google Gemma2 2B:语言模型的“小时代”到来?

北京时间8月1日凌晨(当地时间7月31日下午),Google发布了其Gemma系列开源语言模型的更新,在AI领域引发了巨大的震动。Google Developer的官方博客宣布,与6月发布的27B和9B参数版本相比,新的2B参数模型在保持…

python实现consul的服务注册与注销

我在使用consul的时候主要用于prometheus的consul服务发现,把数据库、虚拟机信息发布到consul,prometheus通过consul拿到数据库、虚拟机信息去采集指标信息。 此篇文章前提是已经安装好consul服务以后,安装consul请参考二进制方式部署consul…

Nat网络地址转换实验

一、实验拓扑 二、实验要求 三、实验思路 四、实验展示 1.接口IP配置 telnet路由器 r1 r2 r3 pc2 2.全网可达(给边界路由器,私家路由器写上缺省 ,还要用到nat地址转换,多对多一对多,端口映射)因为左右…

第22集《大佛顶首楞严经》

请大家打开讲义第四十九页,“寅三、大众茫然”。 我们要是读《金刚经》,就知道整个修学的方向。《金刚经》就是讲到,一个菩萨发了菩提心,心中有目标,要能够上求佛道,下化众生,但是他不知道“云…

探索味蕾新境界:嘴尚绝卤味,一口难忘的美味传奇

在美食的浩瀚星空中,总有一些味道能够穿越时光的长河,直击人心最柔软的部分,让人回味无穷。今天,就让我们一起走进“嘴尚绝”卤味的世界,感受那份独特而令人难以忘怀的口感之美。 一、卤味之魂,匠心独运 “…

CTF web bibibi题型

CTF web bibibi题型 1.进入网站 在kali中使用Dirsearch对地址进行目录扫描,发现robots.txt 网址内加入 /robots.txt 进入网址 /fl4gi5Here.php 找到flag

未来五年,网络安全有没有发展前途,零基础转行难不难?

在被新冠疫情常态化影响的今天,职场当中呈现出了严重的两极分化现象,具体的表现形式为: 一些人薪资翻倍、愈加繁忙,另一些人则加入了失业大军、不知所措;一些行业实现了井喷式增长,一些行业却不断裁员、随…

Apache解析漏洞

一、apache_parsing 在Apache1.x/2.x中Apache 解析文件的规则是从右到左开始判断解析,如果后缀名为不可识别文件解析,就再往左判断。如1.php.xxxxx 1、进入Vulhub靶场并执行以下命令启动靶场 2、只要一个文件含有.php后缀的文件即将被识别成PHP文件&am…

即时通讯和即时通信,即时通讯和实时通信

在当今数字化时代,即时通讯和实时通信已成为人们日常生活和工作中不可或缺的一部分。尽管这两个概念经常被混淆使用,但它们在本质和应用上存在一些区别和联系。同时,企业级即时通讯平台WorkPlus对于提升企业内部沟通和协作也有着重要的作用。…

Java面试八股之简述spring boot的目录结构

简述spring boot的目录结构 Spring Boot 项目遵循标准的 Maven 或 Gradle 项目布局,并且有一些约定的目录用于组织不同的项目组件。下面是一个典型的 Spring Boot 项目目录结构: src/main/java:包含所有的 Java 源代码,通常按包组…

8个高质量PPT模板网站,免费下载

演示文稿已经成为交流和展示想法的重要工具。而一个引人注目、内容精彩的PPT演示,不仅可以让观众留下深刻的印象,还能有效地传达信息和观点。分享八个备受推崇的高质量PPT模板网站,这些网站提供各种各样的模板,涵盖了不同主题、风…

史上最快在IDEA中创建类,只需要 ctrl + 鼠标左键双击 就可以调出创建类的窗口(全网首创)

文章目录 1、正常创建类的步骤2、改进方案 1、正常创建类的步骤 需要首先鼠标右键一次,点击新建,再点击 Java类,过于麻烦 2、改进方案 我们只需要自定义设置创建类的快捷键即可 找到设置、按键映射、主菜单、文件、文件打开操作、打开项目…