Home  >  Q&A  >  body text

javascript - 动态设置页面title的方法?

整个网站有很多页面,但是模板里面只有一个<head></head>,不同页面的title是不一样的。
我目前的做法是根据不同的url用js来动态更改对应的title,不知道这种方式对SEO有影响吗?
有其他更好的实现方式吗?谢谢!

PHP中文网PHP中文网2728 days ago412

reply all(5)I'll reply

  • 高洛峰

    高洛峰2017-04-10 17:32:49

    爬虫检索网页时一般不会执行JS代码,所以你的title等于没有被替换,这样会影响SEO的效果,建议还是在直接输出html时设置好title,或者对爬虫进行一些优化。

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 17:32:49

    建议做后段渲染,用后台的模版吐title,这样爬虫抓取的时候就没有什么问题了

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 17:32:49

    我们也是用的velocity模版:
    部分代码:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=Edge">
        <title>$title</title>
        <meta name="keywords" content="$!keywords">
        <meta name="description" content="$!description">
        <meta name="baidu-site-verification" content="rO1Bqg66kn" />

    title作为变量。

    然后在每个controll里面添加这个变量:

        @LoginConfirm
        @RequestMapping(value = "agent")
        @ActionAround(是否需要设置模板url控制 = true)
        public ModelAndView showAgent(HttpServletRequest req,
                HttpServletResponse resp, ModelMap modelMap) {
            ModelAndView view = new ModelAndView();
    
            view.setViewName("template");
    
            view.addObject("title", "这里是你的title");
    
            return view;
        }

    reply
    0
  • PHPz

    PHPz2017-04-10 17:32:49

    用的angularJS 动态改title,感觉用了angularJS 的话SEO完全不好

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 17:32:49

    几年前百度官方文档的说法是无法理解js生成的内容,也不会去抓取,但是百度一直在努力理解js,现在有没有进步就不得而知了,你可以弄几个页面试试

    reply
    0
  • Cancelreply