之前负责SEO的同事说绝对路径好,一直抱着怀疑的态度(因为绝对路径对开发者来说实在太蛋疼了),今天写一些有路径的代码时,想到了查一下资料。
Should I Use Relative or Absolute URLs? - Whiteboard Friday
以上原文地址是英文内容,大概整理了一下,中文总结(包含个人理解与经验)如下。
统一地址
关于绝对路径,首先你得有一个统一的域名。
http://www.example.com/
http://example.com/
https://www.example.com/
https://example.com/
对用户而言,以上四个地址访问的都是同一个网站,因此他们是一样的。
对Google而言,它们认为这是四个不同的地址,因此它们是不一样的。
Google is seeing the URL from all four versions of your website. They're going to try to figure out which URL is the real URL and just rank that one. The problem with that is you're basically leaving that decision up to Google when it's something that you could take control of for yourself.
Google会尝试着分辨哪一个地址是最主要的,如果这四个地址不是指向同一个站点,那么它可能就会错认一个错误的地址为官方的主站。此时你要做的就是填坑了,包括自己网站里的坑和Google的坑。
内部链接
绝对路径: <a href="https://www.example.com/page" title="to page">
相对路径: <a href="/page" title="to page">
相对路径的好处:
- 对开发者而言,相对路径更简短高效,在部署代码的时候也更方便些。
Some content management systems -- and SharePoint is a great example of this -- have a staging environment that's on its own domain. Instead of being example.com, it will be examplestaging.com.
绝对路径的好处:
- 防止扒窃者轻松地把代码给扒了。
如果内部链接全是相对路径,这其他人可以把所有代码扒下来,不用做任何修改直接部署到服务器上,那样就有一个和你一模一样的网站了。如果使用绝对路径,至少扒窃者还得改路径,如果没改路径,那么最后链接点击了还是会跳转到你的网站。 - 使用相对路径的情况下,在上面的四种可能的域名中,Google认为在四个版本的网站底下的相对路径中的内容是不一样的。
例如:
在Google眼里,
https://example.com/
https://www.example.com/
上面两个域名是不一样的,
<a href="/page" title="to page">
所链接的地址则分别为
https://example.com/page
https://www.example.com/page
,
因此这两个链接的内容是不一样的。
However, Google has gotten pretty good at figuring out what the real version of your website is.
Google能做好它该做的,而我们也应该做好我们该做的事。
- 搜索引擎抓取成本。
Google对网站抓取的深度和频率是有一定限制的,这个限制就是SEO做得好不好的体现(SEO在此不详谈)。
如果使用相对路径,在https://example.com/
下,Google需要抓取一下相对路径下的/page
,在https://www.exaple.com/
下需要抓取一次/page
。如果使用的是绝对路径<a href="https://www.exaple.com/page" title="to page">
则Google只需要抓取一次这个链接。
Google如果需要花费很大精力在抓取与分辨它俩的话,很快它就不愿意来光顾你的网站了。
修正路径问题
- 服务端。
把一个域名定为主域名,其他多个域名解析(301跳转)到这个域名。
Google has certainly said that HTTPS is a little bit better than HTTP.
https是大势所趋,带不带www就只是长短问题了。
- 内部链接。
把相对路径改为绝对路径,特别是header和footer。 Canonicalize it!
But having each page self-canonicalize will mitigate both the risk of duplicate content internally and some of the risk posed by scrappers, because when they scrape, if they are scraping your website and slapping it up somewhere else, those canonical tags will often stay in place, and that lets Google know this is not the real version of the website.上面这一段并没有看很懂,大概意思是给页面加一个
canonical tag
大概是长这个样子:
<link rel="canonical" href="http://example.com/blog" />
关于canonical tab
查了资料补充一下:
原文地址: Canonicalization
对Google而言,
https://www.example.com/page.html?param=1
https://www.example.com/page.html?param=2
以上两个地址指向的是不一样的地址,因此会抓取两次,此时如果在page.html
的<head>
里面加入canonical tag
,也就是
<link rel="canonical" href="https://www.example.com/page.html" />
那么浏览器就会知道只要抓取page.html
这个页面就行了,就会提高抓取的效率。
总结
- 统一域名
- 绝对路径