当前位置: 首页 > news >正文

【SEO】SEO研究一

目录

自我测试与工具

参考目录


nginx里转发一下

if ($http_user_agent ~* "bot|spider|crawl|slurp|bing|baidu") { proxy_pass http://localhost:26666/renderHtml?url=$request_uri; }

自我测试与工具

10.30.2.7: /docker/puppeteer

const express = require('express'); const puppeteer = require('puppeteer'); const fs = require('fs'); const app = express(); // 通用浏览器启动配置 const launchOptions = { headless: 'new', args: ['--no-sandbox', '--disable-setuid-sandbox'] }; // ========================== // 1. SEO 页面检测 (GET /seoCheck?url=xxx) // ========================== app.get('/seoCheck', async (req, res) => { const { url } = req.query; if (!url) return res.send({ error: '请传入 url 参数' }); try { const browser = await puppeteer.launch(launchOptions); const page = await browser.newPage(); await page.setUserAgent('Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'); await page.goto(url, { waitUntil: 'networkidle2', timeout: 30000 }); const data = await page.evaluate(() => { const title = document.title || ''; const metaDesc = document.querySelector('meta[name="description"]')?.content || ''; const h1Count = document.querySelectorAll('h1').length; const h1Text = document.querySelector('h1')?.innerText || ''; const imgsNoAlt = document.querySelectorAll('img:not([alt])').length; const textLength = document.body.innerText.length; const canonical = document.querySelector('link[rel="canonical"]')?.href || ''; return { title, metaDesc, h1Count, h1Text, imgsNoAlt, textLength, canonical }; }); await browser.close(); res.json({ success: true, url, seo: data }); } catch (err) { res.json({ success: false, error: err.message }); } }); // ========================== // 2. 渲染完整 HTML (GET /renderHtml?url=xxx) // ========================== app.get('/renderHtml', async (req, res) => { const { url } = req.query; if (!url) return res.send('请传入 url 参数'); try { const browser = await puppeteer.launch(launchOptions); const page = await browser.newPage(); await page.goto(url, { waitUntil: 'networkidle2' }); const html = await page.content(); await browser.close(); res.setHeader('Content-Type', 'text/html; charset=utf-8'); res.send(html); } catch (err) { res.send('渲染失败:' + err.message); } }); // ========================== // 3. 生成 sitemap.xml (GET /sitemap?url=xxx) // ========================== app.get('/sitemap', async (req, res) => { const { url } = req.query; if (!url) return res.send('请传入 url 参数'); try { const browser = await puppeteer.launch(launchOptions); const page = await browser.newPage(); await page.goto(url, { waitUntil: 'networkidle2' }); const links = await page.evaluate(() => { return Array.from(document.querySelectorAll('a')) .map(a => a.href) .filter(href => href.startsWith(location.origin)); }); const uniqueLinks = [...new Set(links)]; await browser.close(); let sitemap = `<?xml version="1.0" encoding="UTF-8"?>\n<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n`; uniqueLinks.forEach(link => { sitemap += ` <url><loc>${link}</loc></url>\n`; }); sitemap += `</urlset>`; res.setHeader('Content-Type', 'application/xml'); res.send(sitemap); } catch (err) { res.send('生成失败:' + err.message); } }); // 启动服务 const PORT = 26666; app.listen(PORT, () => { console.log('SEO 服务已启动:http://localhost:' + PORT); console.log('使用方式:'); console.log('1. SEO检测: /seoCheck?url=网址'); console.log('2. 渲染HTML: /renderHtml?url=网址'); console.log('3. 生成地图: /sitemap?url=网址'); });
http://localhost:26666/seoCheck?url=https://你的网址.com http://localhost:26666/renderHtml?url=https://你的网址.com http://localhost:26666/sitemap?url=https://你的网址.com

10.30.2.7:35105/seoCheck?url=https://www.gbcom.com.cn

上海寰创通信科技股份有限公司

参考目录

能否被 SEO

【SEO】看一个网站能否被SEO-CSDN博客

Vue3 SPA 支持 SEO 终极总结

https://blog.csdn.net/dualvencsdn/article/details/161767212

http://www.jsqmd.com/news/968447/

相关文章:

  • 3步解决FitGirl压缩游戏管理难题:一站式启动器使用指南
  • 2026年国内主流石棉板/耐油密封石棉板/无尘防火石棉板/石棉隔垫带厂家实力排行:优选河间市鑫锦邦密封材料有限公司 - 奔跑123
  • 别再只用SE和CBAM了!手把手教你用PyTorch复现CVPR2021的Coordinate Attention(附完整代码)
  • HSPICE入门实战:从文本网表到电路仿真的核心心法
  • 油车日常保养
  • MOSFET驱动电路设计:寄生电感影响分析与实战优化
  • PySD系统动力学建模技术指南:Python生态中的模型转换与仿真架构解析
  • 终极HS2-HF Patch指南:如何一键解决Honey Select 2兼容性问题
  • AssetStudio完全指南:轻松提取Unity游戏资源的终极工具
  • 3分钟掌握音乐自由:ncmdump终极解密转换完整教程
  • 2026年国内硅胶板/黑色耐磨硅胶板/白色硅胶板/发泡硅胶板/抗撕拉硅胶板头部厂家实测排行 精准匹配全场景需求 推荐河间市鑫锦邦密封材料有限公司 - 奔跑123
  • 2026年六西格玛流程改善报名怎么确认?绿带黑带费用和资料入口众智商学院官网400冯老师 - 众智商学院职业教育
  • 如何在Linux环境中高效精简编译LibreDWG的DWG到DXF转换工具
  • KMS_VL_ALL_AIO技术深度解析:Windows与Office批量激活完整方案
  • 2026 常州漏水维修攻略|苏易修缮推荐:卫生间 / 阳台 / 外墙 / 屋顶 / 地下室漏水|靠谱防水门店推荐 - 苏易修缮
  • Agent 系列(15):Agent 记忆系统进阶——短期、长期、压缩,三层记忆架构
  • 大模型自我反思机制:零延迟内生式质量校验
  • 基于宽卷积网络的跨工况轴承故障识别工具包(含域自适应迁移训练)
  • WinBtrfs深度解析:Windows平台上的Btrfs文件系统终极指南
  • 基于FPGA的深度FIFO UART IP核设计与实现
  • 如何制作一个艺术品小程序商城?教你零基础搭建方法
  • LayerDivider:5分钟实现AI智能图像分层,让设计效率提升10倍
  • 抖音批量下载工具:3分钟掌握无水印视频保存,从单个作品到主页批量全搞定
  • 2026年黑龙江CPPM报名资料怎么领取?费用班期和联系方式确认众智商学院官网400冯老师 - 众智商学院职业教育
  • FPGA IO配置实战:开漏输出与可编程上拉电阻详解
  • 基于FM1702SL的13.56MHz RFID读卡器:从天线调谐到软件驱动的全流程实战
  • 从变频技术到智能控制:深入解析电脑散热风扇的核心原理与工程实践
  • 微信聊天记录永久保存完整指南:3步实现数据自主管理
  • 5分钟从视频中提取完美字幕:本地化AI字幕提取终极指南
  • Honey Select 2完整游戏增强指南:一键解决200+插件兼容性问题