• HTML5-теги и SEO в 2015-м. Влияет или нет? Есть ли ссылки на исследования?

    Моё сугубо субъективное мнение на этот счёт, основанное на обычной логике, - да, влияет. Совершенно другой вопрос - на сколько это влияние сильно?

    Почему влияет? Да очень просто. Определять семантику документа - это одна из первых задач, которая стояла перед поисковиками на заре их зачатия. Ведь тег title одназначо важнее, чем span или div где-то в дебрях dom'а, верно? Ибо именно в этом теге содержится название, смысл, краткая суть. Так же с h1.
    Года 3-4 назад все seoшники повально итализировали и ужирняли ключевые слова, потому что поисковики где-то промолвились, что, мол, раз жирно - значит важно (уже потом, из-за тупоголового применения этого ужирнения всеми подряд, поисковикам пришлось искусственно занизить значимость данного фактора).

    Значит, всё-таки есть какой-то приоритет тегов, по которым определяется та или иная значимость той или иной части контента. Только вот каков он - этот приоритет?
    Если в примере с title и h1 вполне очевидно, что эти теги стоят где-то в верху списка этих приоритетов, то вот где находятся nav/article/aside/etc - совершенно не понятно. Где-то внизу или посередине, да. Но вот где? Однозначно ответить на этот вопрос нельзя из-за описанных @myfirepuka 'ом причин.

    То, что эти html5 теги вводят новые семантические смыслы, - это же не на пустом месте возникло, правильно? Тем более, что
    Ian Hickson(Google Inc.) является одним из редакторов спецификации HTML5

    Значит, как минимум гугл для себя делает какие-то выводы на основании этих тегов. И это помогает ему отделить основной контент (article) от вспомогательного (aside). А на основании данных из nav он, к примеру, может более точно формировать быстрые ссылки в сниппете.

    К слову, представители яндекса, года 2-3 назад прямо говорили, что их "поисковый движок" про html5-теги знать ничего не знает и в ближайшее время узнавать не планирует. Как с этим у них обстоят дела спустя эти 3 года - не известно.

    Но лично от меня рекомендации такие - если при вёрстке не напряжно расставлять смысловые article/nav/aside/etc, то почему бы и нет? Лишним, вроде не будет. Гораздо важнее следить за семантикой основного содержимого (заголовки и план документа, списки, таблицы).

    Ну и прописывать поддерживаемые поисковиками сущности микроразметки.
    Использование микроразметки не только помогает поисковику лучше понять содержимое, но и для seo имеет дополнительные причинно-следственные связи: информативней сниппет в выдаче -> лучшая кликабельность -> больше траффика).

    Ну и, конечно, не стоит слишком сильно заострять на этом внимание, ибо гораздо важнее, чтобы пользователь оставался доволен сайтом (aka поведенческие факторы) и возвращался на него снова и снова :)

    Как-то так.
    Ответ написан
    Комментировать
  • Как поставить высоту блока div в зависимость от ширины?

    Зачем скрипты? Можно ведь обычным css'ом обойтись:
    jsfiddle.net/qso14y3k

    Один минус - 2 дополнительные обёртки для каждого блока. Но это не смертельно. Фокус этот работает по стандартам, так что работать должен везде.
    Также эта техника входит в toolkit, который написан ребятами, которые написали Singularity.
    Ответ написан
    2 комментария
  • Хочу научиться создавать плагины JQuery - с чего начать?

    Вот хорошая заготовка для написания плагина.

    /*
     *  jQuery Boilerplate - v3.3.4
     *  A jump-start for jQuery plugins development.
     *  http://jqueryboilerplate.com
     *
     *  Made by Zeno Rocha
     *  Under MIT License
     */
    // the semi-colon before function invocation is a safety net against concatenated
    // scripts and/or other plugins which may not be closed properly.
    ;(function ( $, window, document, undefined ) {
    
    		// undefined is used here as the undefined global variable in ECMAScript 3 is
    		// mutable (ie. it can be changed by someone else). undefined isn't really being
    		// passed in so we can ensure the value of it is truly undefined. In ES5, undefined
    		// can no longer be modified.
    
    		// window and document are passed through as local variable rather than global
    		// as this (slightly) quickens the resolution process and can be more efficiently
    		// minified (especially when both are regularly referenced in your plugin).
    
    		// Create the defaults once
    		var pluginName = "defaultPluginName",
    				defaults = {
    				propertyName: "value"
    		};
    
    		// The actual plugin constructor
    		function Plugin ( element, options ) {
    				this.element = element;
    				// jQuery has an extend method which merges the contents of two or
    				// more objects, storing the result in the first object. The first object
    				// is generally empty as we don't want to alter the default options for
    				// future instances of the plugin
    				this.settings = $.extend( {}, defaults, options );
    				this._defaults = defaults;
    				this._name = pluginName;
    				this.init();
    		}
    
    		// Avoid Plugin.prototype conflicts
    		$.extend(Plugin.prototype, {
    				init: function () {
    						// Place initialization logic here
    						// You already have access to the DOM element and
    						// the options via the instance, e.g. this.element
    						// and this.settings
    						// you can add more functions like the one below and
    						// call them like so: this.yourOtherFunction(this.element, this.settings).
    						console.log("xD");
    				},
    				yourOtherFunction: function () {
    						// some logic
    				}
    		});
    
    		// A really lightweight plugin wrapper around the constructor,
    		// preventing against multiple instantiations
    		$.fn[ pluginName ] = function ( options ) {
    				this.each(function() {
    						if ( !$.data( this, "plugin_" + pluginName ) ) {
    								$.data( this, "plugin_" + pluginName, new Plugin( this, options ) );
    						}
    				});
    
    				// chain jQuery functions
    				return this;
    		};
    
    })( jQuery, window, document );
    Ответ написан
    Комментировать
  • Периодически nginx отдает 404 ошибку?

    Артём, не подскажите - вы локализовали проблему?
    Столкнулся с точно таким же поведением nginx'а. Куда копать - не знаю. Гугл внятных ответов не даёт. Единственный связанный линк из его выдачи - это ссылка на данную страницу..
    Ответ написан
    Комментировать