你的网站在搜索引擎中表现怎样很大程度上依赖于你的你的网站对于不同设备上的设计。

下面介绍了怎样基于URL构造来优化你的网站对于搜索引擎的支持。

  • 决定你网页的URL构造 Determine the URL structure of your webpage
  • 响应式布局是极度推荐的 Responsive design is most recommended
  • 使用 rel='canonical' 和 rel='alternate'对网站的桌面端和手机端进行不同的设计 
  • 使用Vary HTTP 头部对于一个单一的url来提供对于桌面端和手机端动态的不同html内容

决定你网站的url结构

下面常见的三种网站url结构:

  1. 响应式布局页面: 提供相同的HTML和一个URL地址,在css中进行设备询问来决定页面在客户端应该怎样渲染
    ex) Desktop and Mobile: http://www.example.com/
  2. 分开的手机端地址: 根据user-agent将用户重定向到一个不同的url
    ex) Desktop: http://www.example.com/ Mobile: http://m.example.com/
  3. 动态提供: 在一个url上根据user-agent的不同提供不同的html
  4. ex) Desktop and Mobile: http://www.example.com/

推荐响应式页面布局

响应式布局的好处:

  • 让用户更容易获取你的页面以及分享你的页面
  • 不需要根据用户代理user-agent来重定向,所以,运行更快
  • 对网站和网络爬虫而言维护消费更低

学习怎样使用响应式布局请点击这里: Responsive Layouts

提供分开的url时使用 link[rel=canonical] 和 link[rel=alternate]

同一个页面在桌面版和手机版中使用不同的URL,将导致用户和搜索引擎困惑,因为提供的是相同页面内容,但是url完全不同,所以你需要暗示:

  • 这两个url的内容是相同的
  • 哪一个是手机版本的url
  • 哪一个是桌面版本的url

上面的信息可以更好的帮助搜索引擎工作,并且确保用户寻找他们想在特定设备上使用时应该用哪种形式的url。

对桌面版本使用 link[rel=alternate]

media属性将帮助搜索引擎了解页面是特定于小屏幕的。

<title>...</title>
<link rel="alternate" media="only screen and (max-width: 640px)" href="http://m.example.com/">

对手机版本使用 link[rel=canonical]

<title>...</title>
<link rel="canonical" href="http://www.example.com/">

Use Vary HTTP header

为了表明url是基于user-agent而产生不同的html内容的,我们需要在HTTP头部提供Vary: User-Agent。

http://www.example.com/ HTTP Header

HTTP/1.1 200 OK
Content-Type: text/html
Vary: User-Agent
Content-Length: 5710

提供了Vary:User-Agent头部之后,搜索引擎和代理商知道了被传输的内容是由用户代理决定的。

着允许了搜搜索引分开对待桌面版本和手机版本,让代理商优雅地存储这些内容。

了解更多: Building Smartphone-Optimized Websites.

原文 : https://developers.google.com/web/fundamentals/discovery-and-monetization/search-optimization/url-structure?hl=en

网站桌面端和手机端不同url的设置的更多相关文章

  1. 山西大同大学教务处学生端--送给学弟,学妹的礼物,可在PC端,手机端操作

    解决问题:大同大学教务处官网学生端口一进去就卡住了,点上面一行的菜单无响应 转眼已是四年,想想自己大学即将结束,不由得让人感慨啊.这才刚开学几天,我就听到有同学在因为补考,选课的事情发愁.学校官方的教 ...

  2. 项目ITP(四) javaweb http json 交互 in action (服务端 spring 手机端 提供各种工具类)勿喷!

    前言 系列文章:[传送门] 洗了个澡,准备写篇博客.然后看书了.时间 3 7 分.我慢慢规律生活,向目标靠近.  很喜欢珍惜时间像叮当猫一样 正文 慢慢地,二维码实现签到将要落幕了.下篇文章出二维码实 ...

  3. js 判断pc端或手机端

    <script> (function () { var navUA = navigator.userAgent; var defIncludeStr = "iPhone|Andr ...

  4. 山西大同大学教务处教师端——可在PC端,手机端操作

    解决问题:大同大学教务处官网教师端口一进去就卡住了,点上面一行的菜单无响应 下载方法(学生端 / 教师端  / 验证脚本): 链接:https://pan.baidu.com/s/1MWrJXoPzE ...

  5. 监听微信端,手机端,ios端的浏览器返回事件,pc端关闭事件

    直接上代码了,可以监听微信端,手机端,iOS端的浏览器返回事件,关闭事件不支持 当进入该页面,我们就给这个history压入一个本地的连接.当点击返回.后退及上一页的操作时,就进行监听,在监听代码中实 ...

  6. 判断浏览器是pc端还是手机端

    1. 判断浏览器是pc端还是手机端 <script type="text/javascript"> var browser = { versions: function ...

  7. web端和手机端测试有什么不同

    面试中经常被问到web端测试和手机端测试有什么相同点和区别呢?现在总结一下这个问题,如有不对敬请指正 web端和手机端测试有什么区别 1.相同点 不管是web测试还是手机App测试,都离不开测试的相关 ...

  8. 关于PC端与手机端随着手指移动图片位置放生变化的拖拽事件

    当按下鼠标时,图片随鼠标移动松开时图片回到原位 drag("div_id") function drag(node_id){ var node = document.getElem ...

  9. 【工具】PC端调试手机端 Html 页面的工具

    一.概述 有一个项目需要在手机端显示一个 web 页面,而每次把应用 launch 后,从手机端看比较麻烦,因此搜罗了几种在 PC 端调试手机端页面的工具. 二.工具 http://fonkie.it ...

随机推荐

  1. binary-tree-inorder-traversal——二叉树中序遍历

    Given a binary tree, return the inordertraversal of its nodes' values. For example:Given binary tree ...

  2. 5.2 calendar--通用日期的相关函数(3)

    prmonth(theyear, themonth, w=0, l=0) 打印指定年和月的日历.格式与formatmonth()函数一样. 样例: #python 3.4 import calenda ...

  3. svn:冲突(<<<<<<.mine ==== >>>>>>.xxxx)

    http://blog.csdn.net/u014000377/article/details/50605895 在svn更新文件时会产生有冲突的文件,一般有两种解决办法: 1.更新文件之前直接查看对 ...

  4. 阿里云 RDS实例间的数据迁移

    使用数据传输DTS可以实现两个RDS实例间的数据迁移.对于支持增量迁移的存储引擎,还可以使用DTS在源RDS实例不停服的情况下,将数据迁移到目标RDS实例.目前对于RDS不同存储引擎,只支持同构迁移( ...

  5. java 逻辑运算符 短路(条件操作)

    两个数字计算时都会先把数字转换成二进制后再进行换算,二进制就是由0和1组成的数字  http://yxwang0615.iteye.com/blog/1084288    

  6. iphone手机分辨率--持久维护

    6.5英寸 —— 1242 x 2688 px —— Xs Max 6.1英寸 —— 828 x 1792 px —— XR 5.8英寸 —— 1125 x 2436 px —— X/Xs 5.5英寸 ...

  7. fabric使用实例(发布web包的一个例子)

    #!/usr/bin/env python # -*- coding: utf-8 -* #添加中文注释的编码 #fabfile.py from fabric.api import * env.use ...

  8. U盘EFI分区删不掉怎么办

    方法/步骤 将U盘查到电脑上 点击[开始]找到并打开[Windows系统]的下拉按钮,找到[命令提示符] 在“命令提示符”上右键>[更多]>[以管理员身份运行]打开“管理员:命令提示符”窗 ...

  9. Npm 被公司墙解决方法

    npm被公司墙了,不能用npm安装任何包应用了. npm ERR! Darwin npm ERR! argv "/usr/local/Cellar/node/6.4.0/bin/node&q ...

  10. 有一个长为n的数组A,求满足0≤a≤b<n的A[b]-A[a]的最大值。 给定数组A及它的大小n,请返回最大差值。

    // ConsoleApplication10.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream& ...