laravel做的网站需不需要进行页面静态化?

laravel里面的文件都是blade.php,需不需要转换为html,更有利于蜘蛛收录?

阅读 9.2k
2 个回答

现在的蜘蛛,哪怕是百度那种烂逼,也不太可能蠢到见到.html就特别优待的地步。

而页面是否经过静态化,蜘蛛本身是无法推断的。所以静态化与否对收录没什么影响。

你真正需要保证的是URL和HTML都要持久不变,不要让蜘蛛产生“文章在频繁更新骗收录”这样的误判。

具体而言手段很复杂,以下是几点参考:

  • 永久链接从一开始就要规划好,尽你最大的努力保持不变,除非不变会死。

  • 如果变了,一定要旧链接301到新链接,并且在<head>中标注好<link rel="canonical">引导搜索引擎。绝对不能新旧链接都是HTTP 200。

  • 利用HTML5的语义化标签,标清正文和辅助内容(边栏、广告、导航等)区域,引导搜索引擎识别正文。例如:<article>, <aside>, <nav>, <header>, <footer>等。

  • 点击数、评论数、广告、排行榜等易变的区域,考虑使用JS动态加载之类的手段实现,从而保证同一篇文章正文不变时,HTML内容输出也不变。


blade再轻量也还是动态渲染,相比原生php都没什么可优越的,更不用提和静态化比。

静态化是缓存的最彻底形式,缓存重建的麻烦最大。所以请考虑以下原则:

  • 计划即瞎猜。做缓存必须从实务需求出发,如何优化绝对不能空想或瞎蒙。

  • 过早优化是万恶之源。功能正常是第一位的,不要没开发出来就想缓存。

  • 无测量,不优化。优化必须首先打在实测发现的性能瓶颈上。

和以下具体参考意见:

  • 缓存要渐进的上,不要直接一推到底。

  • 具体来说,先用内建的Cache服务,对准最频繁请求数据库的点,只缓存数据部分。页面渲染保持Blade不变。

  • 如果仍不够缓解,再考虑全页面内容缓存,但路由仍然使用内建的Route服务。

  • 这时候再不行再考虑静态化。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏