AngularJs(SPA)单页面SEO以及百度统计应用(上)
只有两种人最具有吸引力,一种是无所不知的人,一种是一无所知的人
问:学生问追一个女孩总是追不上怎么办?回答:女孩不是追来的,是吸引来的,你追的过程是吸引女孩的过程,如果女孩没有看上你,再追都是没有用的。
也许用更多的时间丰富自己,让自己变得更有内涵,再出现在女孩面前,她就喜欢你了。另外,爱是有缘分的,哪怕再有内涵气质的人,也不能让所有女孩喜欢。
结语:真主安拉,two words -> 看脸(捂脸表情~),至少你可以吸引爬虫@~@
读在最前面:
本文内容以国内SEO(Search Engine Optimization)为基板
一:SEO收录渠道入口:
1、优质外链
2、主动提交搜索引擎
3、各种社会化书签
4、浏览器搜索记录及相关工具条记录
二:SEO优化:
1、内功:
(1)、关键词分析(关键词关注量分析、竞争对手分析、关键词与网站相关性分析、关键词布置、关键词排名预测)
(2)、原创精品内容
(3)、meta标签:title,keywords,description等,img属性(alt,title等)
(4)、链接:锚文本,图片链接,sitemap等
(5)、网站结构(如:内容页层级不宜过深,每个页面都可以通过至少一个文本链接到达)
(6)、提示:301 ,403,404,503
2、外功:
(1)、精品外链
(2)、高质量友链
三:Angular(SPA单页面) SEO方案:针对爬虫请求,使用nginx导向到服务端渲染服务进行单独处理,本案例使用 prerender.io
迸发磁环境!
1、准备工作
1、node环境安装
2、prerender环境安装
(1)、下载prerender
(2)、解压prerender到本地目录 eg: D:\
(3)、打开cmd命令,切换至D:\prerender,执行命令:npm insatll
(过程中会下载phantomjs,如果服务器网络不好,可以本地下载(vpn)后并拷贝到服务器 C:\Users\Administrator\AppData\Local\Temp\2\phantomjs下,然后执行npm install)
(4)、等待 npm install 命令完成后,执行命令: node server.js
(本地服务到此就开启了,默认端口为3000)
2、Nginx配置
说明:
(1)、配置nginx对爬虫请求进行头信息判断,反向代理到prerender本地服务上进行处理,配置如下:
(2)、配置成功后,重启nginx,访问 domain?_escaped_fragment_ 即可。(可提交搜索引擎测试url 进行实际效果查看 )
location / {
try_files $uri @prerender;
}
location @prerender {
set $prerender 0;
if ($http_user_agent ~* "baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|
W3C_Validator") {
set $prerender 1;
}
if ($args ~ "_escaped_fragment_") {
set $prerender 1;
}
if ($http_user_agent ~ "Prerender") {
set $prerender 0;
}
if ($uri ~* "\.(js|css|xml|less|png|jpg|jpeg|gif|pdf|doc|txt|ico|rss|zip|mp3|rar|exe|wmv|doc|avi|ppt|mpg|mpeg|tif|wav|mov|psd|ai|xls|mp4|m4a|swf|dat|dmg|iso|flv|m4v|
torrent|ttf|woff|svg|eot)") {
set $prerender 0;
}
#resolve using Google's DNS server to force DNS resolution and prevent caching of IPs
#resolver 8.8.8.8;
if ($prerender = 1) {
#setting prerender as a variable forces DNS resolution since nginx caches IPs and doesnt play well with load balancing
#ip替换为本地ip
set $prerender "ip:3000";
rewrite .* /$scheme://$host$request_uri? break;
proxy_pass http://$prerender;
}
if ($prerender = 0) {
rewrite .* /index.html break;
}
}
备注:
1、禁止爬虫,可以编写robots(eg:https://www.taobao.com/robots.txt)放到网站根目录 + 服务器处理(判断请求头,进行特殊处理)
2、通过site:domain 可以查看百度seo收录情况
3、prerender还有很多优化配置,参见文档
4、spa百度统计,可在路由改变的时候,手动调用百度接口进行提交相关信息
by:海豚湾-丰
AngularJs(SPA)单页面SEO以及百度统计应用(上)的更多相关文章
- AngularJs(SPA)单页面SEO以及百度统计应用(下)
苍苍之天不得久视,堂堂之地不得久履 当你小心翼翼的开启服务端渲染的同时,一个问题不得不注意,使用内存模式去保存渲染过的页面,这样服务断掉重启后,缓存也没有了,所以这里我们使用mongdodb进行本地化 ...
- vue单页面应用加入百度统计
版权声明:本文为CSDN博主「钟文辉」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/qq_39753974/a ...
- 单页面vue引入百度统计的使用方法!
最近组长安排着做一个项目,h5的应用下载项目,想着做起来还是比较容易,可是看到提出的需求,我就有点懵逼了!需要对应用的下载进行统计!!!我当时就想着我前端怎么对页面点击按钮就行数据统计啊!我以前的项目 ...
- 基于AngularJs的单页面程序
基于AngularJs的单页面程序 在Abpzero的后台管理系统是一个AngularJs的单页面程序.当你登陆后,系统会跳转到"ApplicationController",然后 ...
- Java快速开发平台强大的代码生成器,JEECG 3.7.5 VUE+ElementUI SPA单页面应用版本发布
JEECG 3.7.5 VUE+ElementUI SPA单页面应用版本发布 此版本为Vue+ElementUI SPA单页面应用版本,提供新一代风格代码生成器模板,采用Vue技术,提供两套精美模板E ...
- 通过Blazor使用C#开发SPA单页面应用程序(3)
今天我们来看看Blazor开发的一些基本知识. 一.Blazor组件结构 Blazor中组件的基本结构可以分为3个部分,如下所示: //Counter.razor //Directives secti ...
- 处理 Vue 单页面 SEO 的另一种思路
vue-meta-info 官方地址: https://github.com/monkeyWang... (设置vue 单页面meta info信息,如果需要单页面SEO,可以和 prerender- ...
- 基于angularJs的单页面应用seo优化及可抓取方案原理分析
公司使用angularJs(以下都是指ng1)框架做了互联网应用,之前没接触过seo,突然一天运营那边传来任务:要给网站做搜索引擎优化,需要研发支持.搜了下发现单页面应用做seo比较费劲,国内相关实践 ...
- 快速了解SPA单页面应用
简要 SPA单页网页应用程序这个概念并不算新,早在2003年就已经有在讨论这个概念了,不过,单页应用这个词是到了2005年才有人提出使用,SPA的概念就和它的名字一样显而易懂,就是整个网站不再像传统的 ...
随机推荐
- WARNING: pgstat wait timeout
在ELK的邮件报警中,发现了一个 WARNING: pgstat wait timeout 的报错信息,看字面意思是pgstat有关操作等待超时. 通过google查询,发现在pg的邮件列表中 ...
- Linux Wget 命令实例讲解
Linux wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器.如果我们使用虚拟主机,处理这样的 ...
- Kubernetes Deployment与Replica Set
Deployment相对于RC的优势 RS与Deployment主要用于替代RC.RS的全称为Replica Set.相对于RC,RS与Deployment的优势如下: RC只支持基于等式的selec ...
- codves 2021中庸之道
2021 中庸之道 http://codevs.cn/problem/2021/ 题目描述 Description 给定一个长度为N的序列,有Q次询问,每次询问区间[L,R]的中位数. 数据保证序列中 ...
- php设计模式之六大设计原则
1.单一职责 定义:不要存在多于一个导致类变更的原因.通俗的说,即一个类只负责一项职责. 场景:类T负责两个不同的职责:职责P1,职责P2.当由于职责P1需求发生改变而需要修改类T时,有可能会导致 ...
- Callable,Future,FutureTask
1.概念定义 2.实现例子 3.总结 1.概念定义 1.Callable Callable是一个接口,效果类似Runnable接口.实现该接口,然后,耗时操作在call()方法中执行.与Run ...
- git之合并分支(git merge)------(三)
最近几天写小demo,总是自己拉取他人的代码,然后创建分支,在自己的分支上进行修改,然后提交到自己的分支,具体的这一步,我就不多讲了,因为在我的博客“工作中常用的Git操作”中有详细的介绍,今天主要讲 ...
- 2016.07.13-map的使用(以leetcode1-Two Sum为例)
map的使用 1.unordered_map和map的区别 2.如何用 3.for (int a : nums1) 4.to_string() 5.map的应用 1.unordered_map和map ...
- 使用solr批量导入mysql数据库,以及Unable to read: dataimport.properties等坑
折腾了一下午终于成功了!先放一张成功图: 成功把mysql的数据添加进去了,我这里是整合了tomcat9,整合步骤挺麻烦的,百度一大堆! 这里主要介绍批量导入数据,这里有些坑,所以记录一下: 步骤: ...
- 3 - django-template模板基本使用
目录 1 Template 1.1 模板的基础使用 1.1.1 变量 1.1.2 注释标签 1.1.3 深度查询 1.1.4 内置变量过滤器filter 1.1.5 自定义过滤器之filter 1.1 ...