Nuxt网站没有被抓取

seo Vue.js

Mandy

2020-03-24

我使用NUXT建立了一个需要SEO的网站

当我使用www.xml-sitemaps.com网站查看是否可以找到我的所有页面时,它只会找到主页,而没有其他路线。当我尝试其他NUXT演示网站时,它们会全部找到。

我的robots.txt档案看起来像:

User-agent: *
Disallow: /profile/
Sitemap: https://www.example.com/sitemap.xml

我正在使用@nuxtjs/sitemap生成sitemap.xml最终看起来像这样的东西:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<url> <loc>https://www.example.com/about</loc> </url>
<url> <loc>https://www.example.com/</loc> </url>
</urlset>

如果这有帮助,我的nuxt.config.js外观如下:

module.exports = {
  /*
  ** Headers of the page
  */
  head: {
    title: 'Title',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: 'Title' }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
    ]
  },
  mode: 'spa',
  loading: { color: '#3B8070' },
  build: {
    /*
    ** Run ESLint on save
    */
    extend (config, { isDev, isClient }) {
      if (isDev && isClient) {
        config.module.rules.push({
          enforce: 'pre',
          test: /\.(js|vue)$/,
          loader: 'eslint-loader',
          exclude: /(node_modules)/
        })
      }
    }
  },
  css: [
    '~/assets/main.css'
  ],
  modules: [
    '@nuxtjs/pwa',
    [
      '@nuxtjs/sitemap', {
        generate: true,
        hostname: 'https://www.example.com',
        exclude: [
          '/profile'
        ]
      }
    ]
  ],
  plugins: [
    '~/plugins/uikit.js',
    '~/plugins/fireauth.js'
  ],
  manifest: {
    name: 'Title',
    lang: 'en'
  },
  router: {
    middleware: 'router-auth'
  },
  vendor: [
    'firebase',
    'uikit'
  ]
}

第3221篇《Nuxt网站没有被抓取》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

2个回答
西里猴子 2020.03.24

了解不同的Nuxt.js模式发生了什么很重要。阅读《Nuxt.js指南》中有关服务器端渲染说明,他们在其中解释了可以配置框架使用的三种模式之间的区别:

  • 通用(具有服务器端呈现,因此在呈现任何页面时,该页面将以所有呈现的HTML进行投放(SEO和搜寻器友好模式)
  • SPA(单页应用程序)将与HTML框架以及CSS和javascript捆绑包一起提供服务,而SPA捆绑包将不捆绑在一起以在浏览器中创建初始DOM。对于Intranet应用程序很酷,对SEO不利。
    • 静态生成所有页面(预渲染),以便可以将任何简单的HTML站点托管在任何共享主机中。

明确概念后,您可以尝试将Nuxt.js配置文件中的“ mode”属性从“ SPA”更改为“ Universal”,以及在同一nuxt.config.js文件中有关xml网站地图配置的其他建议。

此外,您可以尝试使用以下两种方法尝试并了解不同的配置:

  • 安装指南》中讨论Nuxt.js入门模板
  • 诸如Create Nuxt App之类的东西,一旦通过安装,便npm install -g create-nuxt-app可以查看为您自动设置了多少种不同的配置。
2020.03.24

由于您处于SPA模式,因此使用SEO不会获得太多成功,如果可以在universal模式下运行,那么您会看到nuxt / vue的全部好处。

请参阅网站我通用模式做了与Nuxt。

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android