The first one is pretty powerful and pretty awesome, which is investing in demand generation, rather than just demand serving, but demand generation for brand and branded product names. Why does this work? Well, because let's say, for example, I'm searching for SEO tools. What do I get? I get back a list of results from Google with a bunch of mostly articles saying these are the top SEO tools. In fact, Google has now made a little one box, card-style list result up at the top, the carousel that shows different brands of SEO tools. I don't think Moz is actually listed in there because I think they're pulling from the second or the third lists instead of the first one. Whatever the case, frustrating, hard to optimize for. Google could take away demand from it or click-through rate opportunity from it.
Unless you have an invite, you can’t comment or submit a new product to PH. Even then, if you were to submit yourself, the likelihood is that you’d miss out on a lot of traction compared to someone influential on PH submitting. You only get one chance to submit to Product Hunt so you’ll need to identify someone who would be interested in your startup that also has influence within the PH community. To do this, go to Twitter and search the following query in the search bar:
(function(){"use strict";function s(e){return"function"==typeof e||"object"==typeof e&&null!==e}function a(e){return"function"==typeof e}function u(e){X=e}function l(e){G=e}function c(){return function(){r.nextTick(p)}}function f(){var e=0,n=new ne(p),t=document.createTextNode("");return n.observe(t,{characterData:!0}),function(){t.data=e=++e%2}}function d(){var e=new MessageChannel;return e.port1.onmessage=p,function(){e.port2.postMessage(0)}}function h(){return function(){setTimeout(p,1)}}function p(){for(var e=0;et.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return-1!==r&&r===n}),String.prototype.startsWith||(String.prototype.startsWith=function(e,n){return n=n||0,this.substr(n,e.length)===e}),String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}),String.prototype.includes||(String.prototype.includes=function(e,n){"use strict";return"number"!=typeof n&&(n=0),!(n+e.length>this.length)&&-1!==this.indexOf(e,n)})},"./shared/require-global.js":function(e,n,t){e.exports=t("./shared/require-shim.js")},"./shared/require-shim.js":function(e,n,t){var r=t("./shared/errors.js"),i=(this.window,!1),o=null,s=null,a=new Promise(function(e,n){o=e,s=n}),u=function(e){if(!u.hasModule(e)){var n=new Error('Cannot find module "'+e+'"');throw n.code="MODULE_NOT_FOUND",n}return t("./"+e+".js")};u.loadChunk=function(e){return a.then(function(){return"main"==e?t.e("main").then(function(e){t("./main.js")}.bind(null,t))["catch"](t.oe):"dev"==e?Promise.all([t.e("main"),t.e("dev")]).then(function(e){t("./shared/dev.js")}.bind(null,t))["catch"](t.oe):"internal"==e?Promise.all([t.e("main"),t.e("internal"),t.e("qtext2"),t.e("dev")]).then(function(e){t("./internal.js")}.bind(null,t))["catch"](t.oe):"ads_manager"==e?Promise.all([t.e("main"),t.e("ads_manager")]).then(function(e){undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined}.bind(null,t))["catch"](t.oe):"publisher_dashboard"==e?t.e("publisher_dashboard").then(function(e){undefined,undefined}.bind(null,t))["catch"](t.oe):"content_widgets"==e?Promise.all([t.e("main"),t.e("content_widgets")]).then(function(e){t("./content_widgets.iframe.js")}.bind(null,t))["catch"](t.oe):void 0})},u.whenReady=function(e,n){Promise.all(window.webpackChunks.map(function(e){return u.loadChunk(e)})).then(function(){n()})},u.installPageProperties=function(e,n){window.Q.settings=e,window.Q.gating=n,i=!0,o()},u.assertPagePropertiesInstalled=function(){i||(s(),r.logJsError("installPageProperties","The install page properties promise was rejected in require-shim."))},u.prefetchAll=function(){t("./settings.js");Promise.all([t.e("main"),t.e("qtext2")]).then(function(){}.bind(null,t))["catch"](t.oe)},u.hasModule=function(e){return!!window.NODE_JS||t.m.hasOwnProperty("./"+e+".js")},u.execAll=function(){var e=Object.keys(t.m);try{for(var n=0;n=c?n():document.fonts.load(l(o,'"'+o.family+'"'),a).then(function(n){1<=n.length?e():setTimeout(t,25)},function(){n()})}t()});var w=new Promise(function(e,n){u=setTimeout(n,c)});Promise.race([w,m]).then(function(){clearTimeout(u),e(o)},function(){n(o)})}else t(function(){function t(){var n;(n=-1!=y&&-1!=v||-1!=y&&-1!=g||-1!=v&&-1!=g)&&((n=y!=v&&y!=g&&v!=g)||(null===f&&(n=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent),f=!!n&&(536>parseInt(n[1],10)||536===parseInt(n[1],10)&&11>=parseInt(n[2],10))),n=f&&(y==b&&v==b&&g==b||y==x&&v==x&&g==x||y==j&&v==j&&g==j)),n=!n),n&&(null!==_.parentNode&&_.parentNode.removeChild(_),clearTimeout(u),e(o))}function d(){if((new Date).getTime()-h>=c)null!==_.parentNode&&_.parentNode.removeChild(_),n(o);else{var e=document.hidden;!0!==e&&void 0!==e||(y=p.a.offsetWidth,v=m.a.offsetWidth,g=w.a.offsetWidth,t()),u=setTimeout(d,50)}}var p=new r(a),m=new r(a),w=new r(a),y=-1,v=-1,g=-1,b=-1,x=-1,j=-1,_=document.createElement("div");_.dir="ltr",i(p,l(o,"sans-serif")),i(m,l(o,"serif")),i(w,l(o,"monospace")),_.appendChild(p.a),_.appendChild(m.a),_.appendChild(w.a),document.body.appendChild(_),b=p.a.offsetWidth,x=m.a.offsetWidth,j=w.a.offsetWidth,d(),s(p,function(e){y=e,t()}),i(p,l(o,'"'+o.family+'",sans-serif')),s(m,function(e){v=e,t()}),i(m,l(o,'"'+o.family+'",serif')),s(w,function(e){g=e,t()}),i(w,l(o,'"'+o.family+'",monospace'))})})},void 0!==e?e.exports=a:(window.FontFaceObserver=a,window.FontFaceObserver.prototype.load=a.prototype.load)}()},"./third_party/tracekit.js":function(e,n){/**
Hi , the post is really nice , and it made me think if our current strategy is ok or not , 2 things are important " High quality content strategy " and " Good quality Links " now joining those correctly can pose some real challenges , say if we have n no of content writers who are writing for couple of websites, to be generic let’s consider , 1 writer @ 1 website . We have to write make a content strategy for in-house blog of the website to drive authentic traffic on it and a separate content strategy for grabbing  links from some authentic High PR website i.e. CS should be 2 ways , In-house / Outhouse .
Every new blog post that you publish gives you an opportunity to spread it through social media, which helps to drive more traffic back to your site. Use your blog as a way to connect with your audience. Your blog isn’t a place to just post overly promotional posts. This is an opportunity to address possible concerns or even common questions related to your service or product. If you are worried about coming up with enough content ideas to publish blog posts on a regular basis then check out these resources:
(function(){"use strict";function s(e){return"function"==typeof e||"object"==typeof e&&null!==e}function a(e){return"function"==typeof e}function u(e){X=e}function l(e){G=e}function c(){return function(){r.nextTick(p)}}function f(){var e=0,n=new ne(p),t=document.createTextNode("");return n.observe(t,{characterData:!0}),function(){t.data=e=++e%2}}function d(){var e=new MessageChannel;return e.port1.onmessage=p,function(){e.port2.postMessage(0)}}function h(){return function(){setTimeout(p,1)}}function p(){for(var e=0;et.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return-1!==r&&r===n}),String.prototype.startsWith||(String.prototype.startsWith=function(e,n){return n=n||0,this.substr(n,e.length)===e}),String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}),String.prototype.includes||(String.prototype.includes=function(e,n){"use strict";return"number"!=typeof n&&(n=0),!(n+e.length>this.length)&&-1!==this.indexOf(e,n)})},"./shared/require-global.js":function(e,n,t){e.exports=t("./shared/require-shim.js")},"./shared/require-shim.js":function(e,n,t){var r=t("./shared/errors.js"),i=(this.window,!1),o=null,s=null,a=new Promise(function(e,n){o=e,s=n}),u=function(e){if(!u.hasModule(e)){var n=new Error('Cannot find module "'+e+'"');throw n.code="MODULE_NOT_FOUND",n}return t("./"+e+".js")};u.loadChunk=function(e){return a.then(function(){return"main"==e?t.e("main").then(function(e){t("./main.js")}.bind(null,t))["catch"](t.oe):"dev"==e?Promise.all([t.e("main"),t.e("dev")]).then(function(e){t("./shared/dev.js")}.bind(null,t))["catch"](t.oe):"internal"==e?Promise.all([t.e("main"),t.e("internal"),t.e("qtext2"),t.e("dev")]).then(function(e){t("./internal.js")}.bind(null,t))["catch"](t.oe):"ads_manager"==e?Promise.all([t.e("main"),t.e("ads_manager")]).then(function(e){undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined,undefined}.bind(null,t))["catch"](t.oe):"publisher_dashboard"==e?t.e("publisher_dashboard").then(function(e){undefined,undefined}.bind(null,t))["catch"](t.oe):"content_widgets"==e?Promise.all([t.e("main"),t.e("content_widgets")]).then(function(e){t("./content_widgets.iframe.js")}.bind(null,t))["catch"](t.oe):void 0})},u.whenReady=function(e,n){Promise.all(window.webpackChunks.map(function(e){return u.loadChunk(e)})).then(function(){n()})},u.installPageProperties=function(e,n){window.Q.settings=e,window.Q.gating=n,i=!0,o()},u.assertPagePropertiesInstalled=function(){i||(s(),r.logJsError("installPageProperties","The install page properties promise was rejected in require-shim."))},u.prefetchAll=function(){t("./settings.js");Promise.all([t.e("main"),t.e("qtext2")]).then(function(){}.bind(null,t))["catch"](t.oe)},u.hasModule=function(e){return!!window.NODE_JS||t.m.hasOwnProperty("./"+e+".js")},u.execAll=function(){var e=Object.keys(t.m);try{for(var n=0;n=c?n():document.fonts.load(l(o,'"'+o.family+'"'),a).then(function(n){1<=n.length?e():setTimeout(t,25)},function(){n()})}t()});var w=new Promise(function(e,n){u=setTimeout(n,c)});Promise.race([w,m]).then(function(){clearTimeout(u),e(o)},function(){n(o)})}else t(function(){function t(){var n;(n=-1!=y&&-1!=v||-1!=y&&-1!=g||-1!=v&&-1!=g)&&((n=y!=v&&y!=g&&v!=g)||(null===f&&(n=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent),f=!!n&&(536>parseInt(n[1],10)||536===parseInt(n[1],10)&&11>=parseInt(n[2],10))),n=f&&(y==b&&v==b&&g==b||y==x&&v==x&&g==x||y==j&&v==j&&g==j)),n=!n),n&&(null!==_.parentNode&&_.parentNode.removeChild(_),clearTimeout(u),e(o))}function d(){if((new Date).getTime()-h>=c)null!==_.parentNode&&_.parentNode.removeChild(_),n(o);else{var e=document.hidden;!0!==e&&void 0!==e||(y=p.a.offsetWidth,v=m.a.offsetWidth,g=w.a.offsetWidth,t()),u=setTimeout(d,50)}}var p=new r(a),m=new r(a),w=new r(a),y=-1,v=-1,g=-1,b=-1,x=-1,j=-1,_=document.createElement("div");_.dir="ltr",i(p,l(o,"sans-serif")),i(m,l(o,"serif")),i(w,l(o,"monospace")),_.appendChild(p.a),_.appendChild(m.a),_.appendChild(w.a),document.body.appendChild(_),b=p.a.offsetWidth,x=m.a.offsetWidth,j=w.a.offsetWidth,d(),s(p,function(e){y=e,t()}),i(p,l(o,'"'+o.family+'",sans-serif')),s(m,function(e){v=e,t()}),i(m,l(o,'"'+o.family+'",serif')),s(w,function(e){g=e,t()}),i(w,l(o,'"'+o.family+'",monospace'))})})},void 0!==e?e.exports=a:(window.FontFaceObserver=a,window.FontFaceObserver.prototype.load=a.prototype.load)}()},"./third_party/tracekit.js":function(e,n){/**

Remember when you used to rely solely on search engines for traffic? Remember when you worked on SEO and lived and died by your placement in Google? Were you #1? Assured success. Well, okay, maybe not assured. Success only came if the keywords were relevant to your site users, but it was the only real roadmap to generating site traffic and revenue.
×